package com.cungmua.app.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * Created by kelvin.nguyen on 6/23/14.
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class DealDetails implements Serializable {
    public static final int ACTIVE = 0;
    public static final int COMING_SOON = 1;
    public static final int SOLD_OUT = 2;
    public static final int EXPIRED = 3;
    public static final int INACTIVE = 4;

    private int id;
    private String shortName;
    private String fullName;
    private int discountPercent;
    private int marketPrice;
    private int price;
    private List<String> imageList;
    private int totalRegistry;
    private boolean expressShip;
    private boolean liked;
    private String shipMethodName;
    private String highlight;
    private String condition;
    private String description;
    private List<MapAddress> mapAddressList;
    private String phoneSupport;
    private List<String> sizeList;
    private List<String> colorList;
    private List<SKU> skuList;
    private int totalSku;
    private boolean pending;
    private boolean expired;
    private boolean comingSoon;
    private boolean soldOut;
    private boolean active;
    private Date startDate;
    private Date endDate;
    private int dealStatus;
    private String shareUrl;

    @JsonProperty("Id")
    public void setId(int id) {
        this.id = id;
    }

    @JsonProperty("ShortName")
    public void setShortName(String shortName) {
        this.shortName = shortName;
    }

    @JsonProperty("FullName")
    public void setFullName(String fullName) {
        this.fullName = fullName;
    }

    @JsonProperty("DiscountPercent")
    public void setDiscountPercent(int discountPercent) {
        this.discountPercent = discountPercent;
    }

    @JsonProperty("MartketPrice")
    public void setMarketPrice(int marketPrice) {
        this.marketPrice = marketPrice;
    }

    @JsonProperty("Price")
    public void setPrice(int price) {
        this.price = price;
    }

    @JsonProperty("ImageList")
    public void setImageList(List<String> imageList) {
        this.imageList = imageList;
    }

    @JsonProperty("TotalRegistry")
    public void setTotalRegistry(int totalRegistry) {
        this.totalRegistry = totalRegistry;
    }

    @JsonProperty("IsExpressShip")
    public void setExpressShip(boolean expressShip) {
        this.expressShip = expressShip;
    }

    @JsonProperty("IsLiked")
    public void setLiked(boolean liked) {
        this.liked = liked;
    }

    @JsonProperty("ShipMethodName")
    public void setShipMethodName(String shipMethodName) {
        this.shipMethodName = shipMethodName;
    }

    @JsonProperty("HighLight")
    public void setHighlight(String highlight) {
        this.highlight = highlight;
    }

    @JsonProperty("Condition")
    public void setCondition(String condition) {
        this.condition = condition;
    }

    @JsonProperty("Description")
    public void setDescription(String description) {
        this.description = description;
    }

    @JsonProperty("MapAddressList")
    public void setMapAddressList(List<MapAddress> mapAddressList) {
        this.mapAddressList = mapAddressList;
    }

    @JsonProperty("PhoneSupport")
    public void setPhoneSupport(String phoneSupport) {
        this.phoneSupport = phoneSupport;
    }

    @JsonProperty("SizeList")
    public void setSizeList(List<String> sizeList) {
        this.sizeList = sizeList;
    }

    @JsonProperty("ColorList")
    public void setColorList(List<String> colorList) {
        this.colorList = colorList;
    }

    @JsonProperty("SkuList")
    public void setSkuList(List<SKU> skuList) {
        this.skuList = skuList;
    }

    @JsonProperty("TotalSku")
    public void setTotalSku(int totalSku) {
        this.totalSku = totalSku;
    }

    @JsonProperty("IsPending")
    public void setPending(boolean pending) {
        this.pending = pending;
    }

    @JsonProperty("IsExpired")
    public void setExpired(boolean expired) {
        this.expired = expired;
    }

    @JsonProperty("IsCommingSoon")
    public void setComingSoon(boolean comingSoon) {
        this.comingSoon = comingSoon;
    }

    @JsonProperty("IsSoldOut")
    public void setSoldOut(boolean soldOut) {
        this.soldOut = soldOut;
    }

    @JsonProperty("IsActive")
    public void setActive(boolean active) {
        this.active = active;
    }

    @JsonProperty("StartDate")
    @JsonFormat(pattern = "MM/dd/yyyy HH:mm:ss", timezone = "ICT")
    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    @JsonProperty("EndDate")
    @JsonFormat(pattern = "MM/dd/yyyy HH:mm:ss", timezone = "ICT")
    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @JsonProperty("DealStatus")
    public void setDealStatus(int dealStatus) {
        this.dealStatus = dealStatus;
    }

    @JsonProperty("UrlLike")
    public void setShareUrl(String shareUrl) {
        this.shareUrl = shareUrl;
    }

    public int getId() {
        return id;
    }

    public String getShortName() {
        return shortName;
    }

    public String getFullName() {
        return fullName;
    }

    public int getDiscountPercent() {
        return discountPercent;
    }

    public int getMarketPrice() {
        return marketPrice;
    }

    public int getPrice() {
        return price;
    }

    public List<String> getImageList() {
        return imageList;
    }

    public int getTotalRegistry() {
        return totalRegistry;
    }

    public boolean isExpressShip() {
        return expressShip;
    }

    public boolean isLiked() {
        return liked;
    }

    public String getShipMethodName() {
        return shipMethodName;
    }

    public String getHighlight() {
        return highlight;
    }

    public String getCondition() {
        return condition;
    }

    public String getDescription() {
        return description;
    }

    public List<MapAddress> getMapAddressList() {
        return mapAddressList;
    }

    public String getPhoneSupport() {
        return phoneSupport;
    }

    public List<String> getSizeList() {
        return sizeList;
    }

    public List<String> getColorList() {
        return colorList;
    }

    public List<SKU> getSkuList() {
        return skuList;
    }

    public int getTotalSku() {
        return totalSku;
    }

    public boolean isPending() {
        return pending;
    }

    public boolean isExpired() {
        return expired;
    }

    public boolean isComingSoon() {
        return comingSoon;
    }

    public boolean isSoldOut() {
        return soldOut;
    }

    public boolean isActive() {
        return active;
    }

    public Date getStartDate() {
        return startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public int getDealStatus() {
        return dealStatus;
    }

    public String getShareUrl() {
        return shareUrl;
    }

}